"""
@Author : 合肥一元数智教育科技有限公司
@Date :  2025/11/12 13:34
@Description :   正则表达式

数据处理    网络爬虫   网页 html

"""

"""
import  requests
response = requests.get('http://www.mi.com')
print(response.text)

"""
#  正则模块
import re

str_info = 'zhangsan lisi wangwu zhailiu'
# lisi  出现的位置
index = str_info.find("lisi")
print(index)

str_info = 'zhangsan11lisi22wangwu33zhailiu'
# 获取字符串中所有的数字  参数1  正则表达式   规则
result = re.findall(r'\d+', str_info)
print(result)

# .  通配符 单个字符   除换行外
str_info = 'apple ape agree age amaze animate advertise a\ne'
#  提取字符串中 ae中间只有一个字符的 字符串
result = re.findall(r'a.e', str_info)
print(result)
result = re.findall(r'a..e', str_info)
print(result)
result = re.findall(r'a...e', str_info)
print(result)

# 字符集 [] 出现字符集中的一个字符
str_info = 'apple ape agree age amaze animate advertise a\ne  a@e a$e a%e a0e a1e a2e a3e a12e'
result = re.findall(r'a.e', str_info)
print(result)
#   [a-zA-Z0-9]
result = re.findall(r'a[a-z]e', str_info)
print(result)

result = re.findall(r'a[0-9]e', str_info)
print(result)

result = re.findall(r'a[^0-9]e', str_info)
print(result)

result = re.findall(r'a[^a-z]e', str_info)
print(result)

# 重复元字符   {n,m} {n}  *   ?  +
"""
 *  ： 出现零次或无穷次  等同于{0，}
 +  ：出现一次或无穷次 等同于{1，}
 ?  ：出现一次或零次 {0,1}
"""
str_info = 'aeeee apple aPe agree age amaze animate advertise a\ne apge  a@e a$e a%e a0e a2e'
# result = re.findall(r'a...e',str_info)
# result = re.findall(r'a.{3}e',str_info)
# result = re.findall(r'a.{1,3}e',str_info)  # 贪婪模式  最多
result = re.findall(r'a.{1,3}?e', str_info)  # ? 取消贪婪模式
print(result)

# result = re.findall(r'a.*?e', str_info)
# result = re.findall(r'a.+?e', str_info)
result = re.findall(r'a.??e', str_info)
print(result)


# 开始和结束匹配
path = 'blog/2025/12'
reg = '^blog/[0-9]{4}/[0-9]{1,2}$'
ret = re.findall(reg, path)
print(ret)

#  手机号正则
phone = "13788888888aa"
reg = '^1[3456789][0-9]{9}$'
ret = re.findall(reg, phone)
print(ret)
